課程資訊
課程名稱
虛擬機器
Virtual Machines 
開課學期
111-2 
授課對象
電機資訊學院  資訊網路與多媒體研究所  
授課教師
黎士瑋 
課號
CSIE5310 
課程識別碼
922 U4140 
班次
 
學分
3.0 
全/半年
半年 
必/選修
選修 
上課時間
星期二7,8,9(14:20~17:20) 
上課地點
資101 
備註
總人數上限:40人 
 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

虛擬化技術(Virtualization)在各種計算機系統領域都被用來創新解決問題的方法. 虛擬化是雲端運算(Cloud Computing)平台, 包括Amazon AWS, Google Cloud, 和Microsoft Azure實現上的技術核心, 讓用戶能在一套硬體系統上同時執行多個不同的虛擬機器(Virtual Machines), 大幅提昇伺服器硬體系統的使用效率, 並提供硬體的抽象化(Abstraction), 讓不同用戶的運算和資料有更好的隔離及保護. 虛擬機器監督器(Hypervisor/VM Monitor), 譬如KVM, Xen, Azure, VMware提供了虛擬機器介面的支持以及對系統資源的管理. 近日來容器(Containers)的技術實現了比傳統虛擬機器更輕量化, 更具拓展性的支援; 虛擬化技術也被應用在: 支援程式語言(Programming Language) 上, 包括高階語言虛擬機, 譬如JVM and DVM以有效解決程式移植的問題; 和支援計算機架構(Computer Architecture)上, 讓不相容的執行碼可以跨越平台使用. 這些虛擬化所使用的原理和技術, 被認為是計算機領域的硬體(Hardware), 軟體(Software), 應用(Application)之外的第四個應具備的學科訓練. 本課程將包含了對虛擬化技術的實現以及在各領域的創新應用上的介紹, 以及提供學生對當前虛擬化軟體使用與實作開發的經驗. 

課程目標
本課程的設計專注在讓學生了解虛擬化基本的原理, 廣泛的應用, 實現的方法和效能的考量, 以及虛擬化技術在各領域的創新應用. 本課程除了基本原理和實作技術, 也搭配業界最新開發系統的實例. 
課程要求
Systems Programming, Operating Systems, and Computer Architecture. 
預期每週課後學習時數
 
Office Hours
每週四 10:00~12:00 備註: 助教 office hours @ R404 in CS Building 章瑋麟 : 14:00 - 15:00, Wednesdays 林稜凱 : 13:00 - 14:00, Fridays 
指定閱讀
Virtual Machines: Versatile Platforms for Systems and Processes, James Smith and Ravi Nair, Morgan Kaufmann, 2005  
參考書目
Hardware and Software Support for Virtualization, Edouard Bugnion, Jason Nieh, and Dan Tsafrir, Morgan & Claypool Publishers, 2017 
評量方式
(僅供參考)
   
課程進度
週次
日期
單元主題
第1週
2/21  Introduction to Virtualization 
第2週
2/28  Holiday. No class. 
第3週
3/7  Systems Virtual Machines: CPU Virtualization 
第4週
3/14  Systems Virtual Machines: Memory Virtualization 
第5週
3/21  Systems Virtual Machines: I/O, Interrupt, Timer Virtualization 
第6週
3/28  Hypervisor Internals: KVM Walkthrough 
第7週
4/4  Virtual Machines Performance, Management, and Nested Virtualization (recorded class) 
第8週
4/11  Virtualization Security 
第9週
4/18  Midterm 
第10週
4/25  Virtualization Security Cont. 
第11週
5/2  Introduction to Containers 
第12週
5/9  Container Implementations: Dockers and Kubernetes 
第13週
5/16  Process Virtual Machines 
第14週
5/23  Process Virtual Machines 
第15週
5/30  Final Presentation 
第16週
6/6  Final Presentation